//
//  AnoleJSAPI.h
//  AnoleSDK
//
//  Created by mac on 2022/7/14.
//

#import <Foundation/Foundation.h>
#import "AnoleH5CommonDef.h"

//JSAPI扩展基类
//其他JSAPI需要继承AnoleJSAPI，实现registerHandlers方法，实现对jsAPI的扩展

NS_ASSUME_NONNULL_BEGIN

@interface AnoleJSAPI : NSObject

@property (readonly) NSMutableDictionary *handlesDic;

//该JSAPI所属的模块，用于H5回调，比如page，rpc等
@property NSString *moduleName;

//模板方法，子类需要覆盖这个方法，用于注册本模块中的所有回调事件
-(void) registerHandlers;

//注册模块子方法
- (void)registerHandlerName:(NSString *)handleName
                    handler:(JSApiCallBack)handler;

//统一封装回调数据
- (NSDictionary *)responseDicWithCode:(NSInteger)code
                                  Msg:(NSString * __nullable)msg
                               result:(id __nullable)data;
@end

NS_ASSUME_NONNULL_END
